package com.yitao.client.dto.product;


import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.skipper.base.dto.BaseDto;
import com.yitao.client.utils.NumberUtil;
import io.swagger.annotations.ApiModelProperty;


/**
 *
 *  @author skipper
 *  @date 2019-03-20
 *  @desc  如该dto不需要id继承 BaseDto 即可 如需id 则根据情况选择  BaseDtoWithId  或 BaseDtoWithStringId
 *  @see
 */

public class ProductSkuDto extends BaseDto {


    /**
     * id
     */
    @ApiModelProperty("id")
    private Long id;


    /**
     * source_sku_id
     */
    @ApiModelProperty("source_sku_id")
    private Long sourceSkuId;


    /**
     * source_sku_code
     */
    @ApiModelProperty("source_sku_code")
    private String sourceSkuCode;


    /**
     * sku的父级id
     */
    @ApiModelProperty("sku的父级id")
    private Long parentId;


    /**
     * 关联的商品id
     */
    @ApiModelProperty("关联的商品id")
    private Long productId;


    /**
     * 商品skucode
     */
    @ApiModelProperty("商品skucode")
    private String productSkuCode;


    /**
     * 规格名称
     */
    @ApiModelProperty("规格名称")
    private String attrSpecName;


    /**
     * 规格值
     */
    @ApiModelProperty("规格值")
    private String attrSpecValue;


    /**
     * 颜色，适用服装鞋类
     */
    @ApiModelProperty("颜色，适用服装鞋类")
    private String colour;


    /**
     * 尺码，适用服装鞋类
     */
    @ApiModelProperty("尺码，适用服装鞋类")
    private String productSize;


    /**
     * 是否是主sku 0 否 1 是
     */
    @ApiModelProperty("是否是主sku 0 否 1 是")
    private Boolean isMainSku;


    /**
     * 是否被删除 0 否 1 是
     */
    @ApiModelProperty("是否被删除 0 否 1 是")
    private Boolean isDelete;


    /**
     * 是否被上架 0 否 1 是
     */
    @ApiModelProperty("是否被上架 0 否 1 是")
    private Boolean isSale;


    /**
     * 是否可用 0 否 1 是
     */
    @ApiModelProperty("是否可用 0 否 1 是")
    private Boolean isEnable;


    /**
     * 市场价
     */
    @ApiModelProperty("市场价")
    private Long markerPrice;


    /**
     * 售价
     */
    @ApiModelProperty("售价")
    private Long salesPrice;
    @ApiModelProperty("售价(元)")
    private Double salesPriceYuan;


    /**
     * 批发价
     */
    @ApiModelProperty("批发价")
    private Long wholesalePrice;


    /**
     * 活动价
     */
    @ApiModelProperty("活动价")
    private Long activePrice;


    /**
     * 定价(用于不参与优惠活动 定价商品)
     */
    @ApiModelProperty("定价(用于不参与优惠活动 定价商品)")
    private Long fixPrice;


    /**
     * 折扣率
     */
    @ApiModelProperty("折扣率")
    private BigDecimal discount;


    /**
     * 实库数，冗余字段
     */
    @ApiModelProperty("实库数，冗余字段")
    private Integer entityStock;

    /**
     * 商品外部条码(清关使用)
     */
    @ApiModelProperty("商品外部条码(清关使用)")
    private String productOutsideBarcode;


    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    private Long createBy;


    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private Date createTime;


    /**
     * 最后更新人
     */
    @ApiModelProperty("最后更新人")
    private Long lastUpdateBy;


    /**
     * 最后修改时间
     */
    @ApiModelProperty("最后修改时间")
    private Date lastUpdateTime;
//关联信息
    @ApiModelProperty("关联信息")
    private  ProductStockDto productStockDto;
//sku蹄
    @ApiModelProperty("sku图片")
    private  String ImageUrl;

    private List<ProductSkuDto> productSkuDtoList;


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getSourceSkuId() {
        return sourceSkuId;
    }

    public void setSourceSkuId(Long sourceSkuId) {
        this.sourceSkuId = sourceSkuId;
    }

    public String getSourceSkuCode() {
        return sourceSkuCode;
    }

    public void setSourceSkuCode(String sourceSkuCode) {
        this.sourceSkuCode = sourceSkuCode;
    }

    public Long getParentId() {
        return parentId;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public String getProductSkuCode() {
        return productSkuCode;
    }

    public void setProductSkuCode(String productSkuCode) {
        this.productSkuCode = productSkuCode;
    }

    public String getAttrSpecName() {
        return attrSpecName;
    }

    public void setAttrSpecName(String attrSpecName) {
        this.attrSpecName = attrSpecName;
    }

    public String getAttrSpecValue() {
        return attrSpecValue;
    }

    public void setAttrSpecValue(String attrSpecValue) {
        this.attrSpecValue = attrSpecValue;
    }

    public String getColour() {
        return colour;
    }

    public void setColour(String colour) {
        this.colour = colour;
    }

    public String getProductSize() {
        return productSize;
    }

    public void setProductSize(String productSize) {
        this.productSize = productSize;
    }

    public Boolean getIsMainSku() {
        return isMainSku;
    }

    public void setIsMainSku(Boolean isMainSku) {
        this.isMainSku = isMainSku;
    }

    public Boolean getIsDelete() {
        return isDelete;
    }

    public void setIsDelete(Boolean isDelete) {
        this.isDelete = isDelete;
    }

    public Boolean getIsSale() {
        return isSale;
    }

    public void setIsSale(Boolean isSale) {
        this.isSale = isSale;
    }

    public Boolean getIsEnable() {
        return isEnable;
    }

    public void setIsEnable(Boolean isEnable) {
        this.isEnable = isEnable;
    }

    public Long getMarkerPrice() {
        return markerPrice;
    }

    public void setMarkerPrice(Long markerPrice) {
        this.markerPrice = markerPrice;
    }

    public Long getSalesPrice() {
        return salesPrice;
    }

    public void setSalesPrice(Long salesPrice) {
        this.salesPrice = salesPrice;
    }

    public Long getWholesalePrice() {
        return wholesalePrice;
    }

    public void setWholesalePrice(Long wholesalePrice) {
        this.wholesalePrice = wholesalePrice;
    }

    public Long getActivePrice() {
        return activePrice;
    }

    public void setActivePrice(Long activePrice) {
        this.activePrice = activePrice;
    }

    public Long getFixPrice() {
        return fixPrice;
    }

    public void setFixPrice(Long fixPrice) {
        this.fixPrice = fixPrice;
    }

    public BigDecimal getDiscount() {
        return discount;
    }

    public void setDiscount(BigDecimal discount) {
        this.discount = discount;
    }

    public Integer getEntityStock() {
        return entityStock;
    }

    public void setEntityStock(Integer entityStock) {
        this.entityStock = entityStock;
    }

    public String getProductOutsideBarcode() {
        return productOutsideBarcode;
    }

    public void setProductOutsideBarcode(String productOutsideBarcode) {
        this.productOutsideBarcode = productOutsideBarcode;
    }

    public Long getCreateBy() {
        return createBy;
    }

    public void setCreateBy(Long createBy) {
        this.createBy = createBy;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Long getLastUpdateBy() {
        return lastUpdateBy;
    }

    public void setLastUpdateBy(Long lastUpdateBy) {
        this.lastUpdateBy = lastUpdateBy;
    }

    public Date getLastUpdateTime() {
        return lastUpdateTime;
    }

    public void setLastUpdateTime(Date lastUpdateTime) {
        this.lastUpdateTime = lastUpdateTime;
    }

    public ProductStockDto getProductStockDto() {
        return productStockDto;
    }

    public void setProductStockDto(ProductStockDto productStockDto) {
        this.productStockDto = productStockDto;
    }

    public String getImageUrl() {
        return ImageUrl;
    }

    public void setImageUrl(String imageUrl) {
        ImageUrl = imageUrl;
    }

    public List<ProductSkuDto> getProductSkuDtoList() {
        return productSkuDtoList;
    }

    public void setProductSkuDtoList(List<ProductSkuDto> productSkuDtoList) {
        this.productSkuDtoList = productSkuDtoList;
    }

    public Double getSalesPriceYuan() {
        return NumberUtil.centToYuanForDouble(salesPrice);
    }

    public void setSalesPriceYuan(Double salesPriceYuan) {
        this.salesPriceYuan = salesPriceYuan;
    }
}